//============================================================================================
/**
 * @file	sysflag.c
 * @brief	プログラム、スクリプトからアクセスされるシステムフラグ操作
 * @author	Satoshi Nohara
 * @date	05.11.01
 */
//============================================================================================
#ifndef	__SYSFLAG_H__
#define	__SYSFLAG_H__


#include "field/eventflag.h"


//============================================================================================
//	フラグ定義
//
//	SysFlag_...Set
//	SysFlag_...Check
//	関数を作り、そこからアクセスするようにする
//
//============================================================================================
#include "sysflag_def.h"


//--------------------------------------------------------------------------------------------
//	フラグ操作用モード定義
//--------------------------------------------------------------------------------------------
typedef enum {
	SYSFLAG_MODE_RESET = 0,	///<フラグ操作：リセット
	SYSFLAG_MODE_SET,		///<フラグ操作：セット
	SYSFLAG_MODE_CHECK,		///<フラグ操作：取得
}SYSFLAG_MODE;


//============================================================================================
//
//	バッグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * バッグ入手フラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BagSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * バッグ入手フラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_BagCheck( EVENTWORK* ev );

//============================================================================================
//
//	ゲームクリア関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * ゲームクリアフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_GameClearSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * ゲームクリアフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_GameClearCheck( EVENTWORK* ev );

//============================================================================================
//
//	連れ歩きフラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * 連れ歩きフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_PairSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 連れ歩きフラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_PairReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 連れ歩きフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_PairCheck( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 葉っぱ入手フラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_GetLeafCheck( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 葉っぱ入手フラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_SetLeaf( EVENTWORK* ev );

//============================================================================================
//
//	ロケット団変装中フラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * ロケット団変装中フラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_DisguiseSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * ロケット団変装中フラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_DisguiseReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * ロケット団変装中フラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_DisguiseCheck( EVENTWORK* ev );

//============================================================================================
//
//	一歩動いたかフラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * 一歩動いたかフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_OneStepSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 一歩動いたかフラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_OneStepReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 一歩動いたかフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_OneStepCheck( EVENTWORK* ev );


//============================================================================================
//
//	バトルサーチャー：フラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * バトルサーチャー フラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	lv		レベル
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BsLvSet( EVENTWORK* ev, int lv );

//--------------------------------------------------------------------------------------------
/**
 * バトルサーチャー フラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	lv		レベル
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BsLvReset( EVENTWORK* ev, int lv );

//--------------------------------------------------------------------------------------------
/**
 * バトルサーチャー フラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	lv		レベル
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_BsLvCheck( EVENTWORK* ev, int lv );

//============================================================================================
//
//	アンノーンパズルクリア：フラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * アンノーンパズルクリアフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	lv		レベル
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_AnPuzzleClearSet( EVENTWORK* ev, int lv );

//--------------------------------------------------------------------------------------------
/**
 * アンノーンパズルクリアフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	lv		レベル
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_AnPuzzleClearCheck( EVENTWORK* ev,int lv );

/**
 *	@brief	貯金システムフラグ設定
 */
extern void SysFlag_DepositSet(EVENTWORK* ev,BOOL flag);

/**
 *	@brief	貯金システムフラグチェック
 */
extern BOOL SysFlag_IsDepositEnable(EVENTWORK* wk);

//--------------------------------------------------------------------------------------------
/**
 * イベントBGM切り替え フラグのチェックをして、切り替えるBGMナンバーを取得
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	zone_id ゾーンID
 *
 * @retval	"0		= フラグオフなので何もなし"
 * @retval	"0以外	= 変更するBGMナンバー"
 */
//--------------------------------------------------------------------------------------------
extern u16 SysFlag_EventBgmGet( EVENTWORK* ev, int zone_id );


//============================================================================================
//
//	通信カウンター通過フラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * 通信カウンター通過フラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_CommCounterSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 通信カウンター通過フラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_CommCounterReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * 通信カウンター通過フラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_CommCounterCheck( EVENTWORK* ev );

//============================================================================================
//
//	GTCオープンフラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * GTCオープンフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_GTCOpenSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * GTCオープンフラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_GTCOpenReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * GTCオープンフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_GTCOpenCheck( EVENTWORK* ev );

//============================================================================================
//
//	バトルタワーオープンフラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * バトルタワーオープンフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BTowerOpenSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * バトルタワーオープンフラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BTowerOpenReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * バトルタワーオープンフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_BTowerOpenCheck( EVENTWORK* ev );

//============================================================================================
//
//	マサキフラグ関連
//
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * マサキフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_MasakiSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * マサキフラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_MasakiReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * マサキフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_MasakiCheck( EVENTWORK* ev );


//============================================================================================
//		ポケッチフック処理関連
//============================================================================================
extern void SysFlag_PoketchHookSet(EVENTWORK * ev);
extern void SysFlag_PoketchHookReset(EVENTWORK * ev);
extern BOOL SysFlag_PoketchHookCheck(EVENTWORK * ev);

//============================================================================================
//		サファリモード関連
//============================================================================================
extern void SysFlag_SafariSet(EVENTWORK * ev);
extern void SysFlag_SafariReset(EVENTWORK * ev);
extern BOOL SysFlag_SafariCheck(EVENTWORK * ev);

//============================================================================================
//		虫取り大会モード関連
//============================================================================================
extern void SysFlag_MushitoriSet(EVENTWORK * ev,BOOL set);
extern BOOL SysFlag_MushitoriCheck(EVENTWORK * ev);

//============================================================================================
//		ポケパークモード関連
//============================================================================================
extern void SysFlag_PokeParkSet(EVENTWORK * ev);
extern void SysFlag_PokeParkReset(EVENTWORK * ev);
extern BOOL SysFlag_PokeParkCheck(EVENTWORK * ev);

//============================================================================================
//		サイクリングロードモード関連
//============================================================================================
extern void SysFlag_CyclingRoadSet(EVENTWORK * ev);
extern void SysFlag_CyclingRoadReset(EVENTWORK * ev);
extern BOOL SysFlag_CyclingRoadCheck(EVENTWORK * ev);

//============================================================================================
//		ひでんわざ関連
//============================================================================================
//--------------------------------------------------------------------------------------------
//		フラッシュ状態フラグ
//--------------------------------------------------------------------------------------------
///フラッシュ状態フラグセット
extern void SysFlag_FlashSet(EVENTWORK* ev);
///フラッシュ状態フラグリセット
extern void SysFlag_FlashReset(EVENTWORK* ev);
///フラッシュ状態フラグチェック
extern BOOL SysFlag_FlashCheck(EVENTWORK* ev);

//--------------------------------------------------------------------------------------------
//		きりばらい状態フラグ
//--------------------------------------------------------------------------------------------
///きりばらい状態フラグセット
extern void SysFlag_KiribaraiSet(EVENTWORK* ev);
///きりばらい状態フラグリセット
extern void SysFlag_KiribaraiReset(EVENTWORK* ev);
///きりばらい状態フラグチェック
extern BOOL SysFlag_KiribaraiCheck(EVENTWORK* ev);

//--------------------------------------------------------------------------------------------
//		かいりきフラグ
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_Kairiki( EVENTWORK* ev, SYSFLAG_MODE mode);

//--------------------------------------------------------------------------------------------
/**
 * @brief	かいりきフラグのセット
 * @param	ev		EVENTWORKのポインタ
 */
//--------------------------------------------------------------------------------------------
static inline void SysFlag_KairikiSet( EVENTWORK* ev )
{
	SysFlag_Kairiki(ev, SYSFLAG_MODE_SET);
}
//--------------------------------------------------------------------------------------------
/**
 * @brief	かいりきフラグのリセット
 * @param	ev		EVENTWORKのポインタ
 */
//--------------------------------------------------------------------------------------------
static inline void SysFlag_KairikiReset( EVENTWORK* ev )
{
	SysFlag_Kairiki(ev, SYSFLAG_MODE_RESET);
}
//--------------------------------------------------------------------------------------------
/**
 * @brief	かいりきフラグのチェック
 * @param	ev		EVENTWORKのポインタ
 * @return	BOOL	ON/OFF
 */
//--------------------------------------------------------------------------------------------
static inline BOOL SysFlag_KairikiCheck( EVENTWORK* ev )
{
	return SysFlag_Kairiki(ev, SYSFLAG_MODE_CHECK);
}

//--------------------------------------------------------------------------------------------
/**
 * バトルサーチャーのバッテリーを使用しているかフラグのセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BtlSearcherUseSet( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * バトルサーチャーのバッテリーを使用しているかフラグのリセット
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_BtlSearcherUseReset( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * バトルサーチャーのバッテリーを使用しているかフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_BtlSearcherUseCheck( EVENTWORK* ev );

//============================================================================================
//		冒険ノート関連
//============================================================================================
//--------------------------------------------------------------------------------------------
//		冒険ノート入手フラグ
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_FNote( EVENTWORK* ev, SYSFLAG_MODE mode);

//--------------------------------------------------------------------------------------------
/**
 * @brief	冒険ノート入手フラグのセット
 * @param	ev		EVENTWORKのポインタ
 */
//--------------------------------------------------------------------------------------------
static inline void SysFlag_FNoteSet( EVENTWORK* ev )
{
	SysFlag_FNote(ev, SYSFLAG_MODE_SET);
}
//--------------------------------------------------------------------------------------------
/**
 * @brief	冒険ノート入手フラグのリセット
 * @param	ev		EVENTWORKのポインタ
 */
//--------------------------------------------------------------------------------------------
static inline void SysFlag_FNoteReset( EVENTWORK* ev )
{
	SysFlag_FNote(ev, SYSFLAG_MODE_RESET);
}
//--------------------------------------------------------------------------------------------
/**
 * @brief	冒険ノート入手フラグのチェック
 * @param	ev		EVENTWORKのポインタ
 * @return	BOOL	ON/OFF
 */
//--------------------------------------------------------------------------------------------
static inline BOOL SysFlag_FNoteCheck( EVENTWORK* ev )
{
	return SysFlag_FNote(ev, SYSFLAG_MODE_CHECK);
}

//============================================================================================
//
//		到着フラグ関連
//
//============================================================================================
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_Arrive( EVENTWORK * ev, SYSFLAG_MODE mode, u32 arrive_id);

//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
static inline void SysFlag_ArriveSet( EVENTWORK * ev, u32 arrive_id)
{
	SysFlag_Arrive(ev, SYSFLAG_MODE_SET, arrive_id);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
static inline void SysFlag_ArriveReset( EVENTWORK * ev, u32 arrive_id)
{
	SysFlag_Arrive(ev, SYSFLAG_MODE_RESET, arrive_id);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
static inline BOOL SysFlag_ArriveGet( EVENTWORK * ev, u32 arrive_id)
{
	return SysFlag_Arrive(ev, SYSFLAG_MODE_CHECK, arrive_id);
}

//============================================================================================
//
//		イベント関連
//
//============================================================================================
//--------------------------------------------------------------------------------------------
/**
 * WiFiに繋いだ
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern void SysFlag_WifiUseSet( EVENTWORK* ev );


//--------------------------------------------------------------------------------------------
/**
 * @brief	メインメニュー用フラグ取得（１匹目のポケモン取得・ジョウト図鑑取得)
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	none
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_FirstPokeGet( EVENTWORK* ev );
extern void SysFlag_FirstPokeSet( EVENTWORK* ev );
extern BOOL SysFlag_JohtoZukanGet( EVENTWORK* ev );
extern void SysFlag_JohtoZukanSet( EVENTWORK* ev );
extern BOOL SysFlag_PokeGearGet( EVENTWORK* ev );
extern void SysFlag_PokeGearSet( EVENTWORK* ev );

extern BOOL SysFlag_MainMenuIconFlagGet( EVENTWORK* ev, int offset );


//--------------------------------------------------------------------------------------------
/**
 * アサギの灯台イベント　クリアフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_AsagiToudaiEvClearCheck( EVENTWORK* ev );

//--------------------------------------------------------------------------------------------
/**
 * アジトB2 電波発生装置停止イベント　クリアフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 * @param	id		マシンID(0<奥>-2<手前>)
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_D35R0103Ajito_MechStopCheck( EVENTWORK* ev ,u8 id);

//--------------------------------------------------------------------------------------------
/**
 * @brief	タンバジムの滝音環境音フックフラグのチェック
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = フラグON"
 * @retval	"0 = フラグOFF"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_TanbaGymSeCheck( EVENTWORK* ev );
//--------------------------------------------------------------------------------------------
/**
 * @brief	クチバジムの電撃環境音フックフラグのチェック
 * @param	ev		EVENTWORKのポインタ
 * @return	BOOL	フラグの値
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_KutibaGymSeCheck(EVENTWORK * ev);


//--------------------------------------------------------------------------------------------
/**
 * @brief	ステータス画面でポケスロン用のページを表示するか？
 *
 * @param	ev		EVENTWORKのポインタ
 *
 * @retval	"1 = 表示可"
 * @retval	"0 = 表示不可"
 */
//--------------------------------------------------------------------------------------------
extern BOOL SysFlag_StatusPokethlonCheck( EVENTWORK *ev );

//==============================================================================
/**
 * @brief   モンスターボール取得イベントを終わらせているか？
 *
 * @param   ev
 *
 * @retval  BOOL	0:終わってない	1:終わっている
 */
//==============================================================================
extern BOOL SysFlag_MonsBallCheck( EVENTWORK *ev );

//==============================================================================
/**
 * @brief   ボングリケース拡張フラグチェック
 *
 * @param   ev
 *
 * @retval  BOOL	1:拡張済み
 */
//==============================================================================
extern BOOL SysFlag_BongCaseExpandCheck( EVENTWORK *ev );

//==============================================================================
/**
 * @brief   波乗りＢＧＭ禁止フラグセット
 *
 * @param   ev
 *
 * @retval  none
 */
//==============================================================================
extern void SysFlag_SetNamiBGMFbdn( EVENTWORK *ev );

//==============================================================================
/**
 * @brief   波乗りＢＧＭ禁止フラグリセット
 *
 * @param   ev
 *
 * @retval  none
 */
//==============================================================================
extern void SysFlag_ResetNamiBGMFbdn( EVENTWORK *ev );

//==============================================================================
/**
 * @brief   波乗りＢＧＭ禁止フラグチェック
 *
 * @param   ev
 *
 * @retval  BOOL	1:拡張済み
 */
//==============================================================================
extern BOOL SysFlag_CheckNamiBGMFbdn( EVENTWORK *ev );

extern BOOL SysFlag_CheckR11Kabigon( EVENTWORK *ev );

extern BOOL SysFlag_CheckRocketAzitoEnd( EVENTWORK *ev );

//=============================================================================================
/**
 * サファリのブロックカスタマイズを行ったかのフラグ状態をセット
 *
 * @param   ev
 */
//=============================================================================================
extern void SysFlag_SafariBlockCustomSet( EVENTWORK *ev ,BOOL set);

//============================================================================================
//
//		デバッグ機能関連
//
//============================================================================================
#ifdef PM_DEBUG
//システムフラグ系をゲットする
extern u32 DNumInput_SysFlagGet(SAVEDATA* sv,u32 param);
//システムフラグ系をセットする
extern void DNumInput_SysFlagSet(SAVEDATA* sv,u32 param,u32 value);
#endif	//PM_DEBUG


#endif	//__SYSFLAG_H__

